package 尚硅谷多线程1;
/*
* 创建多线程的方式二：实现Runnable接口
* 1.创建一个实现了Runnable接口的类
* 2.实现类去实现Runnable中的抽象方法:run()
* 3.创建实现类的对象
* 4.将此对象作为参数传递到Thread类的构造器中，创建Thread类的对象
* 5.通过Thread类的对象调用start()
* 比较两种创建线程的方式
* 开发中：优先选择使用Runnable接口的方式
* 原因 ： 实现的方式没有类的单继承性的局限性
*        实现的方式更适合来处理多个线程有共享数据的情况
* */
//1.创建一个实现Runnable接口的类
class MThread implements Runnable{
    //2.实现类去实现Runnable中的抽象方法：run()
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if(i%2==0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}
public class RunnableDemo {
    public static void main(String[] args) {
        //3.创建实现类的对象
        MThread mThread=new MThread();
        //4.将此对象作为参数传递到Thread类的构造器中，创建Thread类的对象
        Thread thread1=new Thread(mThread);
        //5.通过Thread类的对象调用start() 调用了Runnable类型的target(!mThread!)的run()
        thread1.setName("线程一");
        thread1.start();
        //在启动一个线程 遍历100以内的偶数
        Thread thread2=new Thread(mThread);
        thread2.setName("线程二");
        thread2.start();
    }
}
